import { Injectable } from '@angular/core';

// 引入 InMemoryDbService
import { InMemoryDbService } from 'angular-in-memory-web-api';
// 引入数组
import { Hero } from './hero';

@Injectable({
  providedIn: 'root'
})
export class InMemoryDataService {
  // 当你的真实服务器就绪时，请移除这个内存 Web API，应用的请求就会直接发给服务器。
  // 模拟数据库
  createDb() {
    const heroes = [
      { id: 11, name: 'Dr Nice' },
      { id: 12, name: 'Narco' },
      { id: 13, name: 'Bombasto' },
      { id: 14, name: 'Celeritas' },
      { id: 15, name: 'Magneta' },
      { id: 16, name: 'RubberMan' },
      { id: 17, name: 'Dynama' },
      { id: 18, name: 'Dr IQ' },
      { id: 19, name: 'Magma' },
      { id: 20, name: 'Tornado2222222222' }
    ];
    return {heroes};
  }

  constructor() { }

  //重写genId方法，以确保英雄始终拥有id。
  //如果heroes数组是空的，
  //下面的方法返回初始数字(11)。
  //如果heroes数组不是空的，则下面的方法返回最高的值
  //英雄id + 1。 //模拟数据库 id 自增吗
  genId(heroes: Hero[]): number {
    return heroes.length > 0 ? Math.max(...heroes.map(hero => hero.id)) + 1 : 11;
  }
}
